# _*_ coding: UTF-8 _*_
# @Time     : 2021/10/22 上午 11:02
# @Author   : Li Jie
# @Site     : http://www.hzdledu.cn/
# @File     : c5s3_for循环语句.py
# @Software : PyCharm

# for循环
# for的本质是对序列进行递归扫描，循环次数由序列的元素个数决定

# range()函数：用于产生范围内的序列
# 基本语法：range(start,end,step)
print(list(range(20)))  # 一个参数是end，默认step是1，包左不包右
print(list(range(10, 20)))  # 两个参数一个start，一个是end，包左不包右
print(list(range(10, 20, 1)))  # 第三个参数是步长，控制从起点到终点的每次间隔
print(list(range(1, 101, 2)))
print(list(range(100, 0, -2)))

# 1-100的累加
sum1 = 0
for i in range(101):
    print(i)
    sum1 += i
print(sum1)

# 1-100的累乘
sum1 = 1
for i in range(1, 11):
    sum1 *= i
print(sum1)

# 2. 打印出以下图形
# *
# *
# *
# *
# *
for i in range(5):
    print('*')

# 循环的嵌套
for i in range(5):  # 外层循环：决定打印行数
    for j in range(5):  # 内存循环：决定每行的个数
        print('*', end=' ')
    print()

# 课堂练习
# *
# * *
# * * *
# * * * *
# * * * * *
print('-------------------------------')
for i in range(5):
    for j in range(i + 1):
        print('*', end=' ')
    print()

# 打印出以下9x9乘法表
# 1x1=1
# 1x2=2 2x2=4
# 1x3=3 2x3=6 3x3=9
# ....
# 1x9=9 ... 9x9=81
print('-------------------------------')
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{j}x{i}={i * j:2}', end=' ')
    print()

# 循环控制
# 1.break终止整个循环
print('-------------------------------')
for i in range(1, 6):
    print(f'{i}次循环，break之前')
    if i == 3:
        break
    print(f'{i}次循环，break之后')

# 2：continue提前结束本次循环，只影响本次循环continue之后的代码
print('-------------------------------')
for i in range(1, 6):
    print(f'{i}次循环，continue之前')
    if i == 3:
        continue
    print(f'{i}次循环，continue之后')
